package com.alquiler.services;

import java.util.List;

import com.alquiler.dao.EmpleadoDao;
import com.alquiler.entities.Empleado;
import com.alquiler.managers.SimpleEntityManager;

public class EmpleadoService {
	
	private EmpleadoDao empleadoDao;	
	
	public EmpleadoService() {		
		this.empleadoDao = new EmpleadoDao(SimpleEntityManager.getInstance().getEntityManager());		
	}
	
	
	public List<Empleado> findAll(){
        return empleadoDao.findAll();
	}
	
	public Empleado findById(Integer idEmpleado){
        return empleadoDao.findById(idEmpleado);
	}
	
	public Empleado getEmpleadoByCredencials(String username,String password){
        return empleadoDao.getEmpleadoByCredencials(username, password);
	}
	
	public Empleado getEmpleadoByIdentificacion(String identificacion){
		
        return empleadoDao.getEmpleadoByIdentificacion(identificacion);
	}
	
	
	
	
	public void saveEmpleado(Empleado empleado){		
	
		
		try{
            SimpleEntityManager.getInstance().beginTransaction();	          
            empleadoDao.save(empleado);
            SimpleEntityManager.getInstance().commit();
        }catch(Exception e){
            e.printStackTrace();
            SimpleEntityManager.getInstance().rollBack();
        }		
	}
	
	public void updateEmpleado(Empleado empleado){
		
		try{
			SimpleEntityManager.getInstance().beginTransaction();
			empleadoDao.update(empleado);				
		    SimpleEntityManager.getInstance().commit();
        }catch(Exception e){
            e.printStackTrace();
            SimpleEntityManager.getInstance().rollBack();
        }
		
	}
	
	
	public void deleteEmpleado(Empleado empleado) throws Exception{
		try{
				
			SimpleEntityManager.getInstance().beginTransaction();
			empleadoDao.remove(empleado);	
			SimpleEntityManager.getInstance().commit();
		  
        }catch(Exception e){        	
            SimpleEntityManager.getInstance().rollBack();       
        }
		
	}

}
